Skip to content

chore(drive): close out the SPI-inversion project#134

Merged
wmadden-electric merged 2 commits into
mainfrom
chore/close-spi-inversion-project
Jul 20, 2026
Merged

chore(drive): close out the SPI-inversion project#134
wmadden-electric merged 2 commits into
mainfrom
chore/close-spi-inversion-project

Conversation

@wmadden-electric

Copy link
Copy Markdown
Contributor

Closes out the SPI-inversion project (Linear: TML-3050, project "Prisma Composer: SPI inversion & deployment results"): verifies its goals were met, lands the retro's one durable lesson, and deletes the transient coordination artifacts per the drive process.

Goal verification

Goal (project spec) Evidence
LoweredNode retired; every deploy-pipeline value typed by its reader; descriptors cast-free for their own values #117 merged; cast ratchet 32 → 30; git grep LoweredNode empty in live code
ADR records the design docs/design/90-decisions/ADR-0033-lowering-types-are-defined-by-their-readers.md (+ probe-verified Alchemy appendix)
Real deploy prints the app's own topology with ids/URLs; no raw JSON dump Proven live both ways (fresh + all-noop redeploy) — verbatim trees in #117's description; printed db id verified via GET /databases/… → 200
Connection-contract enforcement fails loudly, covered by tests S2 in #117; four pinned test cases; reach proven by mutating the real postgres descriptor
#101 superseded Closed with a pointer to #117

Follow-ups from the project are all either merged (#121 lint heal, #123 npm provenance), filed (report try/catch hardening; core-model.md refresh), or recorded as deferred in ADR/PR text (per-node diagnostics, created/updated/noop, --json).

Retro, landed durably

The project's recurring failure had one shape: a check that wasn't the check you thought you ran — a spec pinning types by reading existing casts (three times), a lint report read from a command that could only print on success, a merge decided on a truncated check list. The mechanisms that survive it are already in place: the architecture-coverage check (separate work, proven here), branch protection requiring human review (added after the bad merge), and — landed in this PR — a new section in .agents/rules/no-bare-casts.mdc: reading a cast is reading a claim, not a fact; derive types from the producing expression, never from an adjacent cast or a union-accepting consumer.

Everything else long-lived already migrated during the project: ADR-0033, the deploy/connection sections of the guides and skill, and the "Deployment entity" vocabulary in layering.md/the glossary.

Classification (per the close-out process)

All remaining files under .drive/projects/spi-inversion-and-deploy-results/ were coordination scaffolding — spec, plan, slice specs, design notes, learnings, review artifacts — and delete with the directory. The external-reference scan is clean (nothing outside the directory pointed into it). Historical record: this PR's diff and #117.

🤖 Generated with Claude Code

The SPI-inversion project retro, landed durably: its spec pinned wrong
types three times by deriving them from existing casts, when the casts were
what made the wrong types compile. The rule already governed writing casts;
this section governs reading them.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
All four slices merged in #117 (+#121, #123 follow-ups); project DoD
verified; the durable lessons already live where they belong (ADR-0033,
the guides, the skill, layering.md/glossary, and the cast rule). The
spec/plan/design-notes/review artifacts were coordination scaffolding —
per the drive process they delete at close; this commit and PR #117 are
their historical record.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden
wmadden force-pushed the chore/close-spi-inversion-project branch from 310c0f1 to 74142e4 Compare July 20, 2026 13:58
@wmadden-electric
wmadden-electric merged commit 1351243 into main Jul 20, 2026
12 checks passed
@wmadden-electric
wmadden-electric deleted the chore/close-spi-inversion-project branch July 20, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants